<?php
/**
 * Clase configuradora
 * Descripcion:
 * Esta clase permite detectar y cambiar la configuracion de tema, lenguaje, base de datos y otros
 * Escrito por: frimost (Armandux)
 * Ultima actualizacion: 11-03-2011
 */
class Setter{
	private $configurationsPath;//Ruta del directorio configurations
	private $file;
	
	//-----Atributos para la GUI (idioma y theme)
	private $theme;
	private $themesAvailable;
	private $lang;
	private $langsAvailable;//Idiomas disponibles
        private $interpreterIP; //Dirección IP de Interpreter

	//Constructor y Destructor
	function __construct($configurationsPath="Config"){
		$this->configurationsPath=$configurationsPath;
		$this->file=array();
		
		//---GUI----------------------------------------
		$this->theme="standar";
		$this->lang="es";
		$this->langsAvailable=array();
		//----------------------------------------------
                //---Interpreter--------------------------------
                $this->interpreterIP="";
		
	}
	
	function __destruct(){
		unset($this->configurationsPath);
		unset($this->file);
		
		//---GUI----------------------------------------
		unset($this->theme);
		unset($this->lang);
		unset($this->langsAvailable);
		//-------------------------------------------------
	}
	//Fin Constructor y Destructor

	//Get y Set
	function getTheme(){
		$this->file=$this->configurationsPath."/guiConfig.php";
		$config=file($this->file);
		$this->theme=trim($config[2],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		return $this->theme;
	}
	function getAvailableThemes($themesPath="themes"){
		$themesDisp=scandir($themesPath);
                //buscar .DS_Store (Servidores Mac
                $a=array_search(".DS_Store", $themesDisp);
		if($a!=""){
                    $this->themesAvailable = array_slice($themesDisp, 3);
                }
                else{
                    $this->themesAvailable = array_slice($themesDisp, 2);
                }
		return $this->themesAvailable;
	}
	function getLanguage(){
		$this->file=$this->configurationsPath."/guiConfig.php";
		$config=file($this->file);
		$this->lang=trim($config[1],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		return $this->lang;
	}
	function getAvailableLanguage($languagesPath="languages"){
		$langs=scandir($languagesPath);
		
		foreach($langs as $value){
			$langsDisp[]=substr($value,0,-4);
		}
		$this->langsAvailable = array_slice($langsDisp, 2);
		return $this->langsAvailable;
	}
        function getDataBaseHost(){
		$this->file=$this->configurationsPath."/dbConfig.php";
		$config=file($this->file);
		
		$this->host=trim($config[1],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		return $this->host;
	}
	function getDataBaseName(){
		$this->file=$this->configurationsPath."/dbConfig.php";
		$config=file($this->file);
		
		$this->dbName=trim($config[2],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		return $this->dbName;		
	}
	function getDataBaseUserName(){
		$this->file=$this->configurationsPath."/dbConfig.php";
		$config=file($this->file);
		
		$this->userName=trim($config[3],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		return $this->userName;
	}
	function getDataBasePassword(){
		$this->file=$this->configurationsPath."/dbConfig.php";
		$config=file($this->file);
		$this->password=trim($config[4],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		return $this->password;	
	}
	
	function getSections(){
		$this->file=$this->configurationsPath."/sectionsConfig.php";
		$config=file($this->file);
		foreach($config as $value){
			$this->sections[]=trim($value,"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		}
		array_shift($this->sections);
		return $this->sections;
	}
        function setDataBase($host="localhost", $dbName="", $userName="root", $password=""){
		//Leer el archivo de configuraci√≥n
		$dbConfig=file($this->configurationsPath."/dbConfig.php");
		//----------------------------------
		//Cambiar la info tomada del archivo-------------
		$dbConfig[1]=$host."\n";
		$dbConfig[2]=$dbName."\n";
		$dbConfig[3]=$userName."\n";
		$dbConfig[4]=$password."\n";
		//-----------------------------------------------
		//Eliminar el archivo con la info antigua
		unlink($this->configurationsPath."/dbConfig.php");
		//-----------------------------------------------
		//Crear archivo con la info nueva----------------
		$gestor=fopen($this->configurationsPath."/dbConfig.php",'x+');
		
		foreach($dbConfig as $value){
			$content=$content.$value;
		}
		fwrite($gestor,$content);
		fclose($gestor);
		//-----------------------------------------------
	}
	
	function setTheme($themeSelected="Standard"){
		//Leer el archivo de configuración
		$topogConfig=file($this->configurationsPath."/guiConfig.php");
		//----------------------------------
		//Cambiar la info tomada del archivo-------------
		$topogConfig[2]=$themeSelected."\n";
		//-----------------------------------------------
		//Eliminar el archivo con la info antigua
		unlink($this->configurationsPath."/guiConfig.php");
		//-----------------------------------------------
		//Crear archivo con la info nueva----------------
		$gestor=fopen($this->configurationsPath."/guiConfig.php",'x+');
		
		foreach($topogConfig as $value){
			$content=$content.$value;
		}
		fwrite($gestor,$content);
		fclose($gestor);
		//-----------------------------------------------
	}
	function setLanguage($langSelected="es"){
		//Leer el archivo de configuración
		$config=file($this->configurationsPath."/guiConfig.php");
		//----------------------------------
		//Cambiar la info tomada del archivo-------------
		$config[1]=$langSelected."\n";
		//-----------------------------------------------
		//Eliminar el archivo con la info antigua
		unlink($this->configurationsPath."/guiConfig.php");
		//-----------------------------------------------
		//Crear archivo con la info nueva----------------
		$gestor=fopen($this->configurationsPath."/guiConfig.php",'x+');
		
		foreach($config as $value){
			$content=$content.$value;
		}
		fwrite($gestor,$content);
		fclose($gestor);
		//-----------------------------------------------
	}
        function getInterpreter(){
                $this->file=$this->configurationsPath."/InterpreterIP.php";
		$config=file($this->file);
		$aux=trim($config[1],"\x00..\x1F");//\x00..\x1F es el grupo de caracteres de sistema que se quieren quitar :)
		$aux2=explode("=",$aux);
                $this->interpreterIP=$aux2[1];
                return $this->interpreterIP;
            
        }



        //Fin Get y Set
}
?>
